A conventional computer system 110 (FIG. 1) includes a central processing unit (CPU) 111, a monitor 112, a keyboard 113, a mouse 114 and a main memory 115. CPU 111 executes instructions of a computer application program (hereinafter "frontend application") 116 resident in main memory 115 to control screens, e.g. screen 117, displayed on monitor 12. Screen 117 has a number of fields, e.g. fields 118A-118N (where N is the number of fields in screen 117) that display information identified by labels 119A-119N. The information displayed in screen 117 is typically received from or transferred to a server 120 that runs a backend application 121 that uses a database stored in hard disk 122.
Fields 118A-118N in screen 117 typically include a scroll list 118N for displaying a limited amount of information from data base 122, e.g. rows ROW1, ROW2 and ROW3 of text respectively indicating each employee's first name, last name, and department. In this example, scroll list 118N does not display other information, e.g. each employee's date of birth, and salary. To view such information, the user selects, e.g. clicks on mouse 114 to select one of rows ROW1-ROW3 in scroll list 118N. Based on an employee's identification number, all information for a selected employee is filled in fields 11BA-118N-1 of screen 17. Thereafter, a user can modify information in fields 118A-118N-1 and update the selected employee's information in database 122. Alternatively the user can add the modified information as a new record to database 122.
The above-described frontend application 116 is a typical graphical user interface (GUI) application program that includes a number of screens (not shown) that must be painstakingly developed. For example, to develop a field 118A, a computer application developer first draws a rectangle as the outer boundary of field 118A. Then the developer draws a label 119A carefully, making sure that label 119A is in line with the drawn rectangle. In this approach, each of labels 119A-119N and the corresponding field 118A-118N are independent of each other except for physical proximity on screen 117. Therefore, if a field 118I is changed in size or position, the corresponding label 119I must also be changed in size or position to restore alignment.
Frontend application 116 includes instructions for each field 118I, to validate the information input by the user, and instructions to perform searches in database 122, for example, for all employee records that match a user-entered "last name" in field 118A. Specifically, frontend application 116 includes one or more predetermined database queries (e.g. in a structured query language SQL) to perform database searches using information retrieved from screen 117. The predetermined database queries are typically interspersed between instructions for controlling display of screen 117. Therefore, changing from one database to another requires considerable effort to replace all the predetermined database queries. Moreover, the database queries being predetermined limit the types of searches a user can perform.
Frontend application 116 also manages the temporary storage of data retrieved from database 122 and displayed in scroll list 118N. Management of such temporary storage by frontend application 16 can become a big chore if such software must be written independently for every screen.
So, developing, testing and maintaining a large frontend application with forty to fifty such screens, each screen having ten to twenty such fields becomes an unmanageable task, involving development of each field in each screen, coding of instructions for screen display, storage management and predetermined database queries, all of which are typically integrated together.
Object-oriented languages, such as C++ and SmallTalk allow packaging of data structures and functions together into "classes" that can be instantiated to form "objects." Multiple objects "inherit" data structures and functions from a common class. See "C++ Primer," 2nd Edition, Stanley B. Lippman, Addison-Wesley Publishing Company, Reading, Mass., 1991, that is incorporated by reference herein in its entirety.
UIM/X, a Motif based GUI builder made by Visual Edge Software, Ltd. and available from Black and White Software, Inc. 2155 So. Bascom Ave., Suite 210, Campbell, Calif. 95008, allows use of such objects, called "components" in UIM/X. UIM/X components allow functions to be reused and can simplify the above described unmanageable task. However, a developer must still develop, e.g. validation software to validate data entered by a user, and the predetermined queries of the type discussed above.